
/**
 * 给你一个非负整数 num ，请你返回将它变成 0 所需要的步数。 如果当前数字是偶数，你需要把它除以 2 ；否则，减去 1 。
 */
public class Solution {

    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.numberOfSteps(14)); //6
        System.out.println(s.numberOfSteps(8));  //4
        System.out.println(s.numberOfSteps(123));//12
    }

    public int numberOfSteps(int num) {
        if (num==0){
            return 0;
        }

        int i = 0;
        while (num > 0) {
            i += (num & 1);
            i++;
            num >>>= 1;
        }
        return i-1;
    }

}